package acwing_01;
import java.io.*;
import java.util.*;
public class _800_双指针_数组元素的目标和 {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static int N = 100010;
	static int[] a = new int[N];
	static int[] b = new int[N];
	static int n;
	static int m;
	static int x;
	public static void main(String[] args) throws IOException{
		StringTokenizer st = new StringTokenizer(br.readLine());
		n = Integer.parseInt(st.nextToken());
		m = Integer.parseInt(st.nextToken());
		x = Integer.parseInt(st.nextToken());
		st = new StringTokenizer(br.readLine());
		for(int i = 0; i < n; i++) {
			a[i] = Integer.parseInt(st.nextToken());
		}
		st = new StringTokenizer(br.readLine());
		for(int i = 0; i < m; i++) {
			b[i] = Integer.parseInt(st.nextToken());
		}
		// 先遍历a[]
		for(int i = 0,j=m-1; i < n; i++) {
			/* 
			 * 由于a b是单调递增的数组，
			 * 如果b最后的数值加上a最前的数值大于目标值，
			 * 那么由于递增的性质，a后面的所有任一元素加上b的值都不可能等于目标值
			*/
			// b[]最后开始，如果b后面的值加上a前面的值大于目标值
			// 说明这个b的值加上a的任一值永远不可能等于目标值
			while(j > 0 && a[i] + b[j] > x) j--;
			// 到此说明 a[i]+b[j]小于等于目标值 只需要判断是否目标值，不是目标值则继续i+1
			if(a[i] + b[j] == x) {
				System.out.print(i + " " + j);
				break;
			}
		}
		
	}
}
